package com.anti.modular.sys.dict.service;

import cn.hutool.core.lang.Dict;
import com.anti.jdbc.support.page.PageParam;
import com.anti.jdbc.support.page.PageResult;
import com.anti.modular.sys.dict.entity.SysDictData;
import com.anti.modular.sys.dict.param.SysDictDataParam;

import java.util.List;

/**
 * @Description TODO
 * @Author anTi
 * @Date 2021-3-5
 */
public interface SysDictDataService {

    PageResult page(PageParam pageParam, SysDictDataParam sysDictDataParam);


    /**
     * 系统字典值列表
     * @param sysDictDataParam 查询参数
     * @return 系统字典值列表
     */
    List<SysDictData> list(SysDictDataParam sysDictDataParam);

    /**
     * 添加系统字典值
     * @param sysDictDataParam 添加参数
     */
    void add(SysDictDataParam sysDictDataParam);

    /**
     * 删除系统字典值
     * @param sysDictDataParam 删除参数
     */
    void delete(SysDictDataParam sysDictDataParam);

    /**
     * 编辑系统字典值
     * @param sysDictDataParam 编辑参数
     */
    void edit(SysDictDataParam sysDictDataParam);



    /**
     * 查看系统字典值
     * @param sysDictDataParam 查看参数
     * @return 系统字典值
     */
    SysDictData detail(SysDictDataParam sysDictDataParam);


    /**
     * 根据typeId删除
     * @param dictTypeId 字典类型id
     */
    void deleteByTypeId(Long dictTypeId);

    /**
     * 修改状态
     * @param sysDictDataParam 修改参数
     */
    void updateChangeStatus(SysDictDataParam sysDictDataParam);

    /**
     * 根据typeId下拉
     *
     * @param dictTypeId 字典类型id
     * @return 增强版hashMap，格式：[{"code:":"1", "value":"正常"}]
     */
    List<Dict> getDictDataListByDictTypeId(Long dictTypeId);



    /**
     * 查看系统字典值
     * @param dictType
     * @param dictDataValue
     * @return
     */
    SysDictData getDicDataByTypeNameAndDataValue(String  dictType,String  dictDataValue);
}
